﻿using System;

namespace SharpSqlAnalyzer.nodes.mssql
{
	// Token: 0x020003C1 RID: 961
	public class TMssqlSetSqlNode : TParseTreeNode
	{
		// Token: 0x1700089A RID: 2202
		// (get) Token: 0x060026E5 RID: 9957 RVA: 0x0033AF9A File Offset: 0x0033919A
		public virtual TExpressionList Variable_expr_list
		{
			get
			{
				return this.variable_expr_list;
			}
		}

		// Token: 0x1700089B RID: 2203
		// (get) Token: 0x060026E6 RID: 9958 RVA: 0x0033AFA2 File Offset: 0x003391A2
		// (set) Token: 0x060026E7 RID: 9959 RVA: 0x0033AFAA File Offset: 0x003391AA
		public virtual int SetType
		{
			get
			{
				return this.setType;
			}
			set
			{
				this.setType = value;
			}
		}

		// Token: 0x1700089C RID: 2204
		// (get) Token: 0x060026E8 RID: 9960 RVA: 0x0033AFB3 File Offset: 0x003391B3
		public virtual TObjectName VarName
		{
			get
			{
				return this.varName;
			}
		}

		// Token: 0x1700089D RID: 2205
		// (get) Token: 0x060026EA RID: 9962 RVA: 0x0033AFC4 File Offset: 0x003391C4
		// (set) Token: 0x060026E9 RID: 9961 RVA: 0x0033AFBB File Offset: 0x003391BB
		public virtual TFunctionCall XmlMethod
		{
			get
			{
				return this.xmlMethod;
			}
			set
			{
				this.xmlMethod = value;
			}
		}

		// Token: 0x1700089E RID: 2206
		// (get) Token: 0x060026EB RID: 9963 RVA: 0x0033AFCC File Offset: 0x003391CC
		public virtual TSelectSqlNode Subquery
		{
			get
			{
				return this.subquery;
			}
		}

		// Token: 0x1700089F RID: 2207
		// (get) Token: 0x060026EC RID: 9964 RVA: 0x0033AFD4 File Offset: 0x003391D4
		public virtual TExpression VarExpr
		{
			get
			{
				return this.varExpr;
			}
		}

		// Token: 0x060026ED RID: 9965 RVA: 0x0033AFDC File Offset: 0x003391DC
		public override void init(object arg1, object arg2)
		{
			if (arg1 != null)
			{
				if (arg1 is TObjectName)
				{
					this.varName = (TObjectName)arg1;
					this.varName.ObjectType = 10;
				}
				else if (arg1 is TExpressionList)
				{
					this.variable_expr_list = (TExpressionList)arg1;
				}
			}
			if (arg2 != null)
			{
				if (arg2 is TExpression)
				{
					this.varExpr = (TExpression)arg2;
					return;
				}
				if (arg2 is TSelectSqlNode)
				{
					this.subquery = (TSelectSqlNode)arg2;
				}
			}
		}

		// Token: 0x04001D6F RID: 7535
		private int setType;

		// Token: 0x04001D70 RID: 7536
		private TExpressionList variable_expr_list;

		// Token: 0x04001D71 RID: 7537
		private TObjectName varName;

		// Token: 0x04001D72 RID: 7538
		private TSelectSqlNode subquery;

		// Token: 0x04001D73 RID: 7539
		private TExpression varExpr;

		// Token: 0x04001D74 RID: 7540
		private TFunctionCall xmlMethod;
	}
}
